package com.cskaoyan.javase.array._5variable;

/**
 * 可变参数使用的细节问题:
 * 可变参数的语法
 * [修饰符列表] 返回值类型 方法名 (形式参数列表，数据类型... 变量名){
 *   //方法体
 * }
 *      1.可变参数"数据类型... 变量名"的三个点位于数据类型和变量名之间，前后有无空格都可以。最好是前无空格，后有空格。（使用快捷键 Ctrl + Alt + L即可自动格式化）
 *      2.一个方法只能有一个可变长参数，并且这个可变长参数必须是该方法的最后一个参数。
 *      3.如果可变参数方法和固定参数方法构成方法重载，那么就近原则，优先匹配固定参数的方法。
 *      4.如果出现两个带有可变参数的方法构成方法重载，那么就需要小心注意了，因为极易导致两个方法都不可用！
 *      所以一般来说，尽量避免多个可变参数方法构成方法重载。
 *
 * @since 09:33
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        /*test();
        test(1);
        test(1,1);
        test(1.0,1);*/

        // Ambiguous method call: both 'Demo2.test(int, int...)' and 'Demo2.test(int...)' match
        // test(1, 1);
    }

    // 使用快捷键 Ctrl + Alt + L即可自动格式化代码
    /*public static void test(int... para) {
    }
    public static void test(double... p){}
    public static void test(){}
    public static void test(int a){}*/

    public static void test(int a, int... b) {
    }

    public static void test(int... b) {
    }
}
